﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO; 

namespace Jardin_Informativo_Agua_Tierra
{
    public partial class ConsularParvulos : Form
    {
        public ConsularParvulos()
        {
            InitializeComponent();
        }
        JardinInformativoBDEntities BEDE = new JardinInformativoBDEntities();
        IEnumerable<Parvulo> Lista1;
        Generador g = new Generador();

        public void LlenarParvulos()
        {
            dgv_Parvulos.Rows.Clear();
            try
            {
                Lista1 = BEDE.Parvulo.OrderBy(c => c.folio_ficha);
                foreach (Parvulo aux in Lista1)
                {
                    Nivel n = BEDE.Nivel.Single(d => d.cod_nivel == aux.cod_nivel);
                    dgv_Parvulos.Rows.Add(aux.folio_ficha.ToString(), aux.nombre.ToString(), n.nombre.ToString());
                }
            }
            catch { }
        }

        private void rad_BuscarNiño_CheckedChanged(object sender, EventArgs e)
        {
            LlenarParvulos();
            cbx_NivelNiño.SelectedIndex = -1;
            cbx_NivelNiño.Enabled = false;
            tbx_DatoNiño.Enabled = true;
            tbx_DatoNiño.Clear();
            tbx_DatoNiño.Focus();
        }

        private void rad_FiltroNivel_CheckedChanged(object sender, EventArgs e)
        {
            tbx_DatoNiño.Clear();
            tbx_DatoNiño.Enabled = false;
            cbx_NivelNiño.Enabled = true;
            cbx_NivelNiño.SelectedIndex = -1;
        }

        FichaNiño2 Y = new FichaNiño2();
        FichaNiño1 X = new FichaNiño1();
        FichaNiño3 Z = new FichaNiño3();   

        private void ConsularParvulos_Load(object sender, EventArgs e)
        {
            LlenarParvulos();
            if (dgv_Parvulos.RowCount == 0) { this.Enabled = false; }
            else
            {
                cbx_NivelNiño.DataSource = BEDE.Nivel.OrderBy(c => c.año);
                cbx_NivelNiño.DisplayMember = "nombre";
                cbx_NivelNiño.ValueMember = "cod_nivel";
                cbx_NivelNiño.SelectedIndex = -1;
                this.Enabled = true;
                cbx_NivelNiño.Enabled = false;
                pnl_Ficha.Controls.Clear();
                X.TopLevel = false;
                X.Parent = pnl_Ficha;
                X.Show();
                Z.TopLevel = false;
                Z.Parent = pnl_Ficha;
                Z.Show();
                Y.TopLevel = false;
                Y.Parent = pnl_Ficha;
                Y.Show();
            }
        }

        private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            X.Hide();
            Y.TopLevel = false;
            Y.Parent = pnl_Ficha;
            Y.Show();
            Z.Hide();
        }

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            X.TopLevel = false;
            X.Parent = pnl_Ficha;
            X.Show();
            Y.Hide();
            Z.Hide();
        }

        private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            X.Hide();
            Y.Hide();
            Z.TopLevel = false;
            Z.Parent = pnl_Ficha;
            Z.Show();
        }

        private void btn_VerFicha_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;
            int a = int.Parse(dgv_Parvulos.CurrentRow.Cells[0].Value.ToString());
            try
            {
                X.Mostrar(a);
                Y.Mostrar(a);
                Z.Mostrar(a);
            }
            catch { MessageBox.Show("Ha ocurrido un problema al solicitar la informacion del parvulo seleccionado. (el error puede haber ocurrido por problemas de conexión con la base de datos. Revise su conexión, y reitere la solicitud).", "ERROR DE SOLICITUD.", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Cursor = Cursors.Arrow; }
            this.Cursor = Cursors.Arrow;
        }

        private void btn_Limpiar_Click(object sender, EventArgs e)
        {
            X.Limpiar();
            Y.Limpiar();
            Z.Limpiar();
        }

        private void btn_Buscar_Click(object sender, EventArgs e)
        {
            if (rad_FiltroNivel.Checked == true)
            {
                dgv_Parvulos.Rows.Clear();
                int aa = int.Parse(cbx_NivelNiño.SelectedValue.ToString());
                Lista1 = BEDE.Parvulo.Where(c => c.cod_nivel == aa).OrderBy(c => c.rut_niño);
                foreach (Parvulo aux in Lista1)
                {
                    dgv_Parvulos.Rows.Add(aux.folio_ficha.ToString(), aux.nombre.ToString().Replace("·"," "), aux.Nivel.nombre.ToString());
                }
                if (dgv_Parvulos.RowCount == 0) { MessageBox.Show("El nivel seleccionado no tiene parvulos asociados aun.", "NO SE ENCONTRARON REGISTROS.", MessageBoxButtons.OK, MessageBoxIcon.Information); }
            }
            if (rad_BuscarNiño.Checked == true)
            {
                if (tbx_DatoNiño.Text.Length >= 4)
                {
                    errorProvider1.SetError(rad_BuscarNiño, "");
                    g.BuscarEnGrid(tbx_DatoNiño.Text.ToString(), dgv_Parvulos);
                }
                else { errorProvider1.SetError(rad_BuscarNiño, "El dato ingresado debe de tener al menos 4 caracteres para poder iniciar una busqueda efectiva."); }
            }
        }

        private void tbx_DatoNiño_TextChanged(object sender, EventArgs e)
        {
            if (tbx_DatoNiño.Text.Length >= 4) { errorProvider1.SetError(rad_BuscarNiño, ""); }
        }

        private void btn_Recargar_Click(object sender, EventArgs e)
        {
            LlenarParvulos();
            rad_BuscarNiño.Checked = true;

        }

        //private void btn_PDF_Click(object sender, EventArgs e)
        //{
        //    Document document = new Document();
        //    PdfWriter.GetInstance(document,
        //    new FileStream("devjoker.pdf",FileMode.OpenOrCreate));
        //    document.Open();
        //    Graphics M;
        //    M = X.CreateGraphics();
        //    document.Add(M);
        //    document.Close();
        //}
    }
}
